home *** CD-ROM | disk | FTP | other *** search
/ Atari Mega Archive 1 / Atari Mega Archive - Volume 1.iso / archiver / jampack4.lzh / jampack4 / depv2.s < prev    next >
Text File  |  1987-04-21  |  2KB  |  132 lines

  1. ;V2 Depack routine for JAM Packer V2.X/3.0/4.0
  2.  
  3. DEPACK:
  4.         ADDA.L    #$4,A0    ;ALLOW FOR HEADER
  5.         MOVE.W    #$FE,D7
  6.         MOVE.L    A0,A6
  7.         MOVE.L    (A0)+,D5
  8.         ADDA.L    D5,A1
  9.         ADDA.L    (A0),A0
  10.         SUBA.L    #4,A0
  11.         TST.W    -(A0)
  12.         BPL.S    SKIP
  13.         SUBQ.L    #1,A0
  14. SKIP        MOVE.B    -(A0),D0
  15.  
  16. TOP        ROL.W    D7
  17.         MOVE.W    D7,$FFFF8240.W
  18.         LSL.B    #1,D0
  19.         BNE.S    NOTE
  20.         MOVE.B    -(A0),D0
  21.         ROXL.B    #1,D0
  22. NOTE        BCC.S    SHEP
  23.         CLR.W    D1
  24.         LSL.B    #1,D0
  25.         BNE.S    KLF
  26.         MOVE.B    -(A0),D0
  27.         ROXL.B    #1,D0
  28. KLF        BCC.S    PET
  29.         LEA    TABL1(PC),A3
  30.         MOVEQ    #3,D3
  31. STE        CLR.W    D1
  32.         MOVE.B    0(A3,D3.W),D2
  33.         EXT.W    D2
  34.         MOVEQ    #-1,D4
  35.         LSL.W    D2,D4
  36.         NOT.W    D4
  37.         SUBQ.W    #1,D2
  38. ARJ        LSL.B    #1,D0
  39.         BNE.S    BOYS
  40.         MOVE.B    -(A0),D0
  41.         ROXL.B    #1,D0
  42. BOYS        ROXL.W    #1,D1
  43.         DBF    D2,ARJ
  44.         TST.W    D3
  45.         BEQ.S    SHOP
  46.         CMP.W    D1,D4
  47.         DBNE    D3,STE
  48. SHOP        MOVE.B    4(A3,D3.W),D2
  49.         EXT.W    D2
  50.         ADD.W    D2,D1
  51. PET        MOVE.B    -(A0),-(A1)
  52.         DBF    D1,PET
  53. SHEP        MOVE.L    A6,A3
  54.         ADDQ.L    #$8,A3
  55.         CMPA.L    A3,A0
  56.         BLE    EXIT
  57.         LEA    TABL2(PC),A3
  58.         MOVEQ    #3,D2
  59. CATHY        LSL.B    #1,D0
  60.         BNE.S    ALSA
  61.         MOVE.B    -(A0),D0
  62.         ROXL.B    #1,D0
  63. ALSA        BCC.S    FDC
  64.         DBF    D2,CATHY
  65. FDC        CLR.W    D1
  66.         ADDQ.W    #1,D2
  67.         MOVE.B    0(A3,D2.W),D3
  68.         BEQ.S    VAN
  69.         EXT.W    D3
  70.         SUBQ.W    #1,D3
  71. DE        LSL.B    #1,D0
  72.         BNE.S    VEN
  73.         MOVE.B    -(A0),D0
  74.         ROXL.B    #1,D0
  75. VEN        ROXL.W    #1,D1
  76.         DBF    D3,DE
  77. VAN        MOVE.B    5(A3,D2.W),D3
  78.         EXT.W    D3
  79.         ADD.W    D3,D1
  80.         CMPI.W    #2,D1
  81.         BEQ.S    MFD
  82.         LEA    TABL3(PC),A3
  83.         MOVEQ    #1,D3
  84. LUC        LSL.B    #1,D0
  85.         BNE.S    CML
  86.         MOVE.B    -(A0),D0
  87.         ROXL.B    #1,D0
  88. CML        BCC.S    BBS
  89.         DBF    D3,LUC
  90. BBS        ADDQ.W    #1,D3
  91.         CLR.W    D2
  92.         MOVE.B    0(A3,D3.W),D4
  93.         EXT.W    D4
  94. MCH        LSL.B    #1,D0
  95.         BNE.S    SAW
  96.         MOVE.B    -(A0),D0
  97.         ROXL.B    #1,D0
  98. SAW        ROXL.W    #1,D2
  99.         DBF    D4,MCH
  100.         LSL.W    #1,D3
  101.         ADD.W    4(A3,D3.W),D2
  102.         BRA.S    CPUN
  103. MFD        CLR.W    D2
  104.         MOVEQ    #5,D3
  105.         CLR.W    D4
  106.         LSL.B    #1,D0
  107.         BNE.S    EMF
  108.         MOVE.B    -(A0),D0
  109.         ROXL.B    #1,D0
  110. EMF        BCC.S    CLR1
  111.         MOVEQ    #8,D3
  112.         MOVEQ    #$40,D4
  113. CLR1        LSL.B    #1,D0
  114.         BNE.S    NOTZ
  115.         MOVE.B    -(A0),D0
  116.         ROXL.B    #1,D0
  117. NOTZ        ROXL.W    #1,D2
  118.         DBF    D3,CLR1
  119.         ADD.W    D4,D2
  120. CPUN        LEA    0(A1,D2.W),A2
  121.         EXT.L    D1
  122.         ADDA.L    D1,A2
  123.         SUBQ.W    #1,D1
  124. WRTLP        MOVE.B    -(A2),-(A1)
  125.         DBF    D1,WRTLP
  126.         BRA    TOP
  127. EXIT        RTS
  128. TABL1        DC.B    $0A,$03,$02,$02,$0E,$07,$04,$01
  129. TABL2        DC.B    $0A,$02,$01,$00,$00,$0A,$06,$04,$03,$02
  130. TABL3        DC.B    $0B,$04,$07,$00,$01,$20,$00,$00
  131.         DC.B    $00,$20
  132.